home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / AGSPPX20.ZIP / PPLX.DOC < prev    next >
Text File  |  1996-07-10  |  18KB  |  459 lines

  1.                     s                                   s
  2.                    .$                                  .$
  3.                   .$$                                 .$$
  4.                  .$^$                                 $$$
  5.                 .$' $.    .s$Ss..       .s$Ss..       `$$     .s$Ss..
  6.                .$'  $$  .$$$²°^²$$s.  .$$$²°^²$$s.     `$.  .$$$²°^²$$s.
  7.              .$$'   $$  $$$      `$$  $$$      `$$      $$  $$$      `$$
  8.           .s$$$$$s. ²$. `²$$s.     ²  $$$        ²      $$. `²$$s.     ²
  9.        .sS$²°^°²S$$Ss.²    `$$$²'     $$$.        .sS.  $$$    `°²S$Ss.
  10.  ..ssS$$²'        `°²S$s.  .$$'       `$$$     .s$S²S$. $$$.    .s. `°²$s.
  11.  ²$S²'              $Sss. .$$'      .$ $$$. .s$S²'.$ $$ $$$$. .$$'     `$$
  12.                     $$$$$ $$$      .$$ `$$$ `²²' .$$ `$ $$$$$ $$$      .$$
  13.                     $$$$² `$$s.  .s$$'  `$$s.  .s$$'    $$$$² `$$s.  .s$$'
  14.                     $$²     `²$$$S²'  Ms. `²$$$S²'      $$²     `²$$$S²'
  15.                     $'                                  $'
  16.                           C       O       R       P.
  17.  
  18.                                   PPLX 2.OO
  19.                     PCBoard Programming Language eXtractor
  20.  
  21.                              (C) 1996 Lone Runner
  22.  
  23.                   ·  · ·-───────────────────────────--· ·  ·
  24.  
  25.                            Main Coding - Lone Runner
  26.                                  Parts - The doC
  27.  
  28.  
  29. ───────────────────────────────────────────────────────────────────────────────
  30. ▒▒▌ READ BEFORE USING ! ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  31. ───────────────────────────────────────────────────────────────────────────────
  32.  
  33.   You may use this program provided that :
  34.  
  35.   - You are not part of any federal group (i don't like federal groups)
  36.   - You are not part of Clark Development Company (nothing personnal...)
  37.   - You planed to use it at home for personnal purposes only (no money here!)
  38.  
  39.   THE AUTHOR MAY NOT BE RESPONSIBLE FOR ANY CHANGE MADE TO ANY PROGRAM
  40.   BY USING PPLX. Nobody will ever ever enter an action against Borland
  41.   because they made Turbo Debugger or to V Communication because they
  42.   made Sourcer. There is no more reason for PPLX author to be responsible
  43.   for any law violation by using this software.
  44.  
  45.   If you don't agree with the above terms or if you are not in accordance
  46.   with restriction use, you HAVE to delete this software IMMEDIATLY.
  47.  
  48.   Further use of this software will be considered as the acceptance of the
  49.   above terms.
  50.  
  51.  
  52. ───────────────────────────────────────────────────────────────────────────────
  53. ▒▒▌ DESCRIPTION ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  54. ───────────────────────────────────────────────────────────────────────────────
  55.  
  56.   PPLX is a PPE decompiler... working with PPE's up to 3.30 handling functions
  57.   & procedures, performing heuristic analysis and intelligent postprocessing,
  58.   allowing you to remove backdoors, customize uncustomizable PPE's, recover a
  59.   lost source code, or have a look into any PPE you choosed to use...
  60.  
  61.   See WHAT'S.NEW for release history.
  62.  
  63.  
  64. ───────────────────────────────────────────────────────────────────────────────
  65. ▒▒▌ INSTALLATION ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  66. ───────────────────────────────────────────────────────────────────────────────
  67.  
  68.   Hmm... copy PPLX.EXE to your UTILS\ or WHATEVERITISCALLED\ subdirectory,
  69.   preferably in your PATH...
  70.  
  71.  
  72. ───────────────────────────────────────────────────────────────────────────────
  73. ▒▒▌ USING PPLX ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  74. ───────────────────────────────────────────────────────────────────────────────
  75.  
  76.  
  77.   PPLX FILENAME[.PPE] [/A] [/L] [/U] [/F]
  78.  
  79.   /N    Disable heuristic analysis
  80.   /L    Don't delete PPU file
  81.   /U    Only create PPU file
  82.   /F    Disable postprocessing (Flat PPLX 1.xx decompilation)
  83.  
  84.   ie:
  85.  
  86.   PPLX C:\PCB\PPE\*.PPE /A
  87.   PPLX WEEKTOP.PPE /A /L
  88.  
  89.  
  90. ───────────────────────────────────────────────────────────────────────────────
  91. ▒▒▌ POSTPROCESSING ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  92. ───────────────────────────────────────────────────────────────────────────────
  93.  
  94.   Starting from v2.0, PPLX will now postprocess the created source to remove
  95.   the nasty PPLC transformations.
  96.  
  97.   ■ Original source :
  98.  
  99.      Integer A
  100.      For (A=1) To 2
  101.          PrintLn "Hello, world."
  102.      Next
  103.  
  104.   ■ PPLX without Postprocessing :
  105.          ~~~~~~~
  106.      Integer  INTEGER001
  107.      INTEGER001 = 1
  108.      :LABEL000
  109.      If (!(((1 < 0) && (INTEGER001 >= 2)) || ((1 >= 0) && (INTEGER001 <= 2)))) Goto LABEL001
  110.      PrintLn "Hello, world."
  111.      INTEGER001 = INTEGER001 + 1
  112.      Goto LABEL000
  113.      :LABEL001
  114.  
  115.   ■ PPLX with Postprocessing
  116.          ~~~~
  117.      Integer  INTEGER001
  118.      For INTEGER001 = 1 To 2
  119.          PrintLn "Hello, world."
  120.      Next
  121.  
  122.  
  123.   Nice eh? :)
  124.  
  125.  
  126. ───────────────────────────────────────────────────────────────────────────────
  127. ▒▒▌ PPU FILES ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  128. ───────────────────────────────────────────────────────────────────────────────
  129.  
  130.   A .PPU file is simply a v3.xx .PPE decrypted to the v2.0 flat format.
  131.   You can run a PPU after renaming it to PPE without any problem provided
  132.   you use the right version of PCBoard.
  133.  
  134.   HINT FOR SYSOPS!
  135.   
  136.   Decrypting your PPE's will speed up your system as PCB will not have
  137.   to decrypt them before running them.
  138.  
  139.  
  140. ───────────────────────────────────────────────────────────────────────────────
  141. ▒▒▌ TROUBLESHOOTING ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  142. ───────────────────────────────────────────────────────────────────────────────
  143.  
  144.      WARNINGS/ERRORS
  145.      ───────────────
  146.  
  147.     "x function(s) were declared but not defined..."
  148.     "x procedure(s) were declared but not defined..."
  149.  
  150.   This means that, in the original source code, a function was coded but not
  151.   used. When PPLC compile the source, if a function is not used, it doesn't
  152.   update an important field that holds the function coordinates... In this
  153.   case, PPLX will not be able to detect the beginning of the function, and,
  154.   if there are local variables, to declare them. The same problem may appear
  155.   with procedures.
  156.  
  157.  
  158.     "Unknown statement xxxx, dunno how to handle it... Skipping!"
  159.  
  160.   This means that an unknown statement was used, theorically, this cannot
  161.   happen, but in real life, a corrupted PPE or an anti-decompilation trick
  162.   can produce this warning. If an unknown statement is found, it is skipped,
  163.   causing some next statements to be irrationnal... Code may redecompile
  164.   correctly after some instructions but it is not likely that the code will
  165.   be recompilable.
  166.  
  167.  
  168.     "Unknown function xxxx!"
  169.  
  170.   This is a fatal error, an unknown function cannot be skipped, it is due
  171.   to the same things (corrupted PPE, anti-decompilation trick) but cannot
  172.   recover.
  173.  
  174.  
  175.     "FATAL ERROR! ..."
  176.  
  177.   Any error message beginning with "FATAL ERROR" means that the PPE cannot be
  178.   decompiled due to one of the following reasons :
  179.  
  180.   NORMAL REASONS
  181.  
  182.   - An unknown anto-decompilation trick was used
  183.   - You did not have enough memory
  184.   - The PPE was corrupt
  185.   - You used PPLX on a PPE compiled by a futur and unsupported PPLC
  186.     (currently, PPLX can handle 1.0 to 3.30 which is the latest so far)
  187.  
  188.  
  189.   SHITTY REASONS THAT SHOULD NOT HAPPEN BUT THEY DO BECAUSE YOU'RE STUPID
  190.  
  191.   - You patched PPLX to make him do some misterious things (hmmm... ;))
  192.   - You traced PPLX during decompilation and changed a random variable.
  193.   - You patched you PPE before decompiling it, just for trying to make
  194.     a brand new anti-decompilation system. (Well... PPE's are encrypted,
  195.     changing only one byte will fuck up the rest of the PPE unless you can
  196.     decrypt it, patch it, and recrypt it...)
  197.  
  198.   OTHER REASON
  199.  
  200.   - I'm a stupid coder and i forget some bug(s).
  201.  
  202.  
  203.     PPE'S RUNNING DIFFERENT AFTER BEEING DECOMPILED & RECOMPILED
  204.     ────────────────────────────────────────────────────────────
  205.  
  206.   Some PPE's (CSSC for example) compute a self check to see if they were
  207.   decompiled and recompiled... It is not a big deal because you have the
  208.   source so you can remove the self-check test.
  209.  
  210.  
  211.     ANTI-DECOMPILATION SYSTEMS
  212.     ──────────────────────────
  213.  
  214.   Sometimes, PPLX will report "Anti-decompilation system stripped!". In fact
  215.   this happen when a suposed anti-decompilation system has been found.
  216.   Depending on the anti-decompilation trick used, PPLX will remove or
  217.   modify the line so it can be decompiled. Sometimes you won't even see
  218.   the anti-decompilation in the resulting PPX file, sometimes you will have
  219.   something like :
  220.  
  221.   INTEGER001 = INTEGER001 - *
  222.  
  223.   Just modify this line or remove it so the file can be recompiled.
  224.  
  225.   When PPLX remove the line itself, there is always a risk that this line
  226.   was really used in the code. For example, if a coder put an anti-
  227.   decompilation trick on a line that assigns a variable, he can always
  228.   use the result of this assignation elsewhere in the code. Because the line
  229.   has been stripped, the PPE will not run as before... Well... Get a life !
  230.   you have the code ! Don't expect me to do everything for you ! :)
  231.  
  232.  
  233.     PPLC BUGS
  234.     ─────────
  235.  
  236.   We all know this, PPLC is not bug free... unfortunatly, there are cases
  237.   where PPLC bugs prevent a source from being decompiled correctly...
  238.  
  239.   In most cases, PPLX will detect the bug and place a warning in comments,
  240.   so you can check easily what's going on...
  241.  
  242.   But sometimes PPLX will not detect the bug, simply because PPLC compiled
  243.   the thing as another statement... In those cases, PPLX will decompile what
  244.   is coded, and will not be able to guess that PPLC was wrong when compiling
  245.   it...
  246.  
  247.   For example, try to compile :
  248.  
  249.   IF (!(A == B) && !(C == D)) THEN...
  250.  
  251.   and 
  252.  
  253.   IF ((A == B) && !!(C == D)) THEN...
  254.  
  255.   Those two statements are compiled the axact same way by PPLC although they
  256.   are not equivalent... However, PPLX will always decompile to the first
  257.   case, wich is the most common one (who will put two NOT on the same
  258.   test ?!!!) and, more important, the one that PCB actually execute...
  259.  
  260. ───────────────────────────────────────────────────────────────────────────────
  261. ▒▒▌ WARNINGz / DISCLAIMER ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  262. ───────────────────────────────────────────────────────────────────────────────
  263.  
  264.   ■ This decompiler should work perfectly on your machine as it is the
  265.     case on mine. However, some PPE may not decompile, due to some new
  266.     anti-decompilation tricks that maybe will cause PPLX to crash... It is
  267.     possible, also, that PPLX crash or fail to decompile a PPE because of a
  268.     special instruction chain that i didn't manage to handle... In such a
  269.     case, please mail me an uuencoded version of the PPE...
  270.  
  271.   ■ Do what you want with this... You may use this program in any way you
  272.     want, you may destroy it, burn it, eat it, smoke it, inject it, vomit it,
  273.     kick it, suck it, piss it, shot it, print it with reversed lines, rename
  274.     it to zip, arj, arc or whatever you want, try then to extract it, to
  275.     pkzipfix it, you may also perform sort on it, uuencode, crypt it with
  276.     PGP, play it on your GUS or even your SB, you may even decompile, modify
  277.     it, you may do WHAT YOU WANT, but NO MEMBER OF AEGiS CoRP MAY BE
  278.     RESPONSIBLE FOR ANY DAMAGE CAUSED BY THE USE OF THIS PROGRAM OR IT'S
  279.     MODIFICATIONS...
  280.  
  281.   ■ I don't ask any money for you to use PPLX, so don't expect support if
  282.     you experience troubles with this program. If i have time, i will answer
  283.     each email, but i cannot garantee this nor. Don't think it is because
  284.     i have a big ego, but i simply don't have much time :) Anyway, be
  285.     patient, answers may come a lot later than expected, but they may come...
  286.  
  287.  
  288. ───────────────────────────────────────────────────────────────────────────────
  289. ▒▒▌ FINAL WORDS ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  290. ───────────────────────────────────────────────────────────────────────────────
  291.  
  292.  ■ All you PPE coders
  293.    ──────────────────
  294.  
  295.    Stay tuned these months for PowerPPL v3.0, featuring transparent use of
  296.    Chicken's AWESOME PPLDebug with your *real* source!
  297.  
  298.  
  299.  ■ Clark Development Company
  300.    ─────────────────────────
  301.  
  302.    Why do you bother changing the cryptosystem ? As PCB will always have
  303.    to decrypt a PPE, you'll never be able to prevent another program from
  304.    doing the same...
  305.  
  306.    Decrypting is SLOW ! PPE v3.30 have to be :
  307.  
  308.    - read from disk
  309.    - decrypted with your stupid v3.30 XOR "a deux balles"
  310.    - AGAIN decrypted with the v3.00 cryptosystem
  311.  
  312.    Repeat this operation ONE variable at a time (!) and then for the code
  313.    itself...
  314.  
  315.    For a PPE worth using, this can take SECONDS on a slow machine !
  316.  
  317.  
  318.  ■ Shareware PPE Coders
  319.    ────────────────────
  320.  
  321.    Shareware PPE ? Come on... be serious.
  322.  
  323.  
  324.  ■ PCB Sysops
  325.    ──────────
  326.  
  327.    Claiming a PPE is yours by changing a copyright notice will not bring you
  328.    fame... It will only bring you more & more lameness...
  329.  
  330. ───────────────────────────────────────────────────────────────────────────────
  331. ▒▒▌ CONTACT ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  332. ───────────────────────────────────────────────────────────────────────────────
  333.  
  334.   Don't write me for things like :
  335.  
  336.       "Please, explain me the PPE format"
  337.       "Where could i get PPLX source code?"
  338.  
  339.   But write me for anything else...
  340.  
  341.         lone.runner@nuxes.frmug.fr.net
  342.         lone.runner@ace.epita.fr
  343.  
  344.         Francis Gastellu on :    A.C.E
  345.                                  +33-1-4588-7548
  346.                                  +33-1-4588-8809
  347.  
  348.         Lone Runner on :         THE DEADLINE
  349.                                  +33-1-4648-6763
  350.                                  +33-1-4644-5796
  351.  
  352.                                  UNDERGROUND CAFÉ
  353.                                  +33-1-4882-2581
  354.  
  355.   Don't expect a FAAAAAAAST answer... :)
  356.  
  357.   If you want to send me a postcard, this will be REALLY appreciated!
  358.  
  359.   Of course, if you have too much money, you could send me some or, maybe
  360.   a CD, or some hardware :)
  361.  
  362.     Write for anything to :
  363.  
  364.          Francis Gastellu
  365.          42 Bd de Stalingrad
  366.          94500 Champigny Sur Marne
  367.          FRANCE
  368.  
  369.   If, for any reason, you need it, here's my PGP key.
  370.  
  371. -----BEGIN PGP PUBLIC KEY BLOCK-----
  372. Version: 2.6
  373.  
  374. mQCNAi/8EHAAAAEEAKmS4/mymaVeyczvrKdr4sSdj8vKXHWz7SOK5wcI3S/bkIzk
  375. cF7b0/V35uP5ItStUxNsU54zRDS9snl3MH4/9wgcpky/GEGVAeuC0suybpBOLiJP
  376. JKUkffhk2jlB7qFB8+dQhMjBc1iUST8rDSuID7t7ChqdY2xHihxaVwFGSpdVAAUR
  377. tB5sb25lLnJ1bm5lckBudXhlcy5mcm11Zy5mci5uZXS0C0xvbmUgUnVubmVy
  378. =sqjP
  379. -----END PGP PUBLIC KEY BLOCK-----
  380.  
  381. ───────────────────────────────────────────────────────────────────────────────
  382. ▒▒▌ SOAP ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  383. ───────────────────────────────────────────────────────────────────────────────
  384.  
  385.   Do you know SOAP ? No ??!!?
  386.  
  387.   Well... SOAP stands for "State Of the Art for PCBoard", it is a fast-growing
  388.   internationnal network dedicaced to PCBoard. For now, SOAP is distributed
  389.   in France, Spain, Italy, Denmark, Germany and Switzerland, and many groups
  390.   has joined (like AEGiS, TNT, ECR and more). The purpose of this net is to
  391.   create a big meeting place for all sysops that have interests in PCB
  392.   (PPE Coding, Configuration problems, Interfacing, Ansi/ascii art, etc...)
  393.   There are also group-restricted confs for PPE group members. An echo file
  394.   is under develoment and should spread all productions from all groups on
  395.   SOAP and more...
  396.  
  397.   If you want more infos (Conf list, etc...) see the Soap Infopackage
  398.   included into PPLX archive.
  399.  
  400.   See ya in a SOAP Conf !
  401.  
  402.  
  403. ───────────────────────────────────────────────────────────────────────────────
  404. ▒▒▌ GREETS ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  405. ───────────────────────────────────────────────────────────────────────────────
  406.  
  407.    Gandalf/AEGiS                - Tibadida!
  408.  
  409.    Chicken/Tools4Fools          - Thanks for your hint about the WAIT sttmt.
  410.                                   Hope to see you in a party next year
  411.                                   with more time to speak together than we
  412.                                   had at wired...
  413.  
  414.    The doC/AEGiS                - Jeanneton prend sa faucilleuuu, la rirètteu,
  415.                                   la rirèèè-èè-teuuuu!! :)
  416.  
  417.    Number Six/AEGiS             - We want Deadreader finished!
  418.  
  419.    Jason Bourne/AEGiS           - GP ROULAIZE! YEAHH!
  420.  
  421.    Ferem/MWB/AEGiS              - Don't be upset about chapi-chapo, it was
  422.                                   only for once, we won't do it again :)
  423.  
  424.    New ID/Massive Posse
  425.    Kloy / (┤RT
  426.    Qube / Tools4Fools
  427.    Turbo-D / Triloxy            
  428.    Speed Freak / Triloxy        
  429.    Captain THI
  430.    Medicus / Keen Like Frogs
  431.    Locutus / mozICart
  432.    Parac / mozICart
  433.  
  434.  
  435.    All PPE Groups               - Go on, continue to release new products,
  436.                                   and feel free to chat with us!
  437.  
  438.  
  439.  Greets also to all my contacts over the PPE scene, all sysops from the boards
  440.  where i usually log, all people that already or will send me email about PPLX,
  441.  reporting problems or just telling they use it... :) At least, greets to
  442.  Marie-Pierre, Florentine, Andrea, Iwona, Charlotte, Camille, Dominique, 
  443.  Alexandra, Line, and all the nice girls who i gorget their names (shame on
  444.  me), and who will, for sure, never see this file :)
  445.  
  446.  
  447.  
  448.                                                            _.Lone Runner
  449.  
  450.  
  451.                                         _    _  _ ___ ___/\
  452.     _________/\  /\_____________/\________________ ___ _  _ \/\______________
  453.    /      _    \/   _________  /    ______________________  /   __________  /
  454.  _/     __/     \    ____)___\/     \         \_/         \/\___________  \/_
  455.  \      \        \_  \        \_     \__       \_            \_        /    /
  456.   \______\        /____________/________________/_____________/____________/kP
  457.   ·-------`------'---------------------------------------------------------·
  458.  
  459.